MATLAB: 使用Findobj函数获取Figure内所有axes

您所在的位置:网站首页 matlab figure的作用 MATLAB: 使用Findobj函数获取Figure内所有axes

MATLAB: 使用Findobj函数获取Figure内所有axes

#MATLAB: 使用Findobj函数获取Figure内所有axes| 来源: 网络整理| 查看: 265

有时候需要获取Figure里所有的axes句柄,这时候可使用Findobj函数,但需要注意,Findobj返回的axes向量里,axes的顺序是乱的。

figure tiledlayout(3,1) nexttile(1) title('Figure里的第1个axes') nexttile(2) title('Figure里的第2个axes') nexttile(3) title('Figure里的第3个axes') ax = findobj(gcf,'Type','axes'); for ii=1:length(ax) tilenum = ax(ii).Layout.Tile; disp(['findobj返回的第' num2str(ii) '个axes其实是Figure里的第' num2str(tilenum) '个axes']) ax(ii).XLabel.String = ['findobj返回的第' num2str(ii) '个axes']; end

命令窗口输出为:

findobj返回的第1个axes其实是Figure里的第3个axes

findobj返回的第2个axes其实是Figure里的第2个axes

findobj返回的第3个axes其实是Figure里的第1个axes

注意1:

上面画图时使用了tiledlayout,所以使用ax(ii).Layout.Tile查看该axes的编号,如果是subplot所生成的axes,Layout属性为空。暂时未找到subplot所生成的axes的编号怎么查看。

注意2:

本例里findobj返回的axes的顺序刚好是Figure里axes的顺序的颠倒,这种颠倒在大多数情况下是成立的,但并不总是成立,这实际上取决于每个axes(即nexttile)的画图顺序。例如:nexttile(1)、nexttile(3)、nexttile(2)的画图顺序将得到

findobj返回的第1个axes其实是Figure里的第2个axes

findobj返回的第2个axes其实是Figure里的第3个axes

findobj返回的第3个axes其实是Figure里的第1个axes



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3